Scripted interactivity for non-real-time services

ABSTRACT

A method consistent with certain implementations involves receiving a triggered declarative object (TDO) at a digital television receiver device, the TDO including a scripted executable routine; the scripted executable routine having a script that defines a user interface (UI) for manipulation of non-real-time (NRT) content; initiating the operation of the TDO; and the digital television receiver, executing scripted operations to present the user with the user interface. This abstract is not to be considered limiting, since other embodiments may deviate from the features described in this abstract.

CROSS REFERENCE TO RELATED DOCUMENTS

This application is a continuation of U.S. patent application Ser. No. 13/038,967 filed Mar. 2, 2011, which claims priority benefit of U.S. Provisional Patent Application No. 61/375,415 filed Aug. 20, 2010 entitled “Scripted Access to Hidden Multimedia Assets” to Mark Eyer, and also claims priority benefit of U.S. Provisional Patent Application No. 61/354,515 filed Jun. 14, 2010 entitled “Hyperlinks in Synchronized Widgets” to Mark Eyer, and claims priority benefit of U.S. Provisional Patent Application No. 61/352,275 filed Jun. 7, 2010 entitled “Widgets for Non-Real-Time Services” to Mark Eyer, each of which is hereby incorporated herein by reference. This application is also related to U.S. patent application Ser. No. 13/038,984 entitled “Scripted Access to Hidden Multimedia Assets” to Mark Eyer and to U.S. patent application Ser. No. 13/038,939 entitled “TV-Centric Actions in Triggered Declarative Objects” and to U.S. patent application Ser. No. 13/039,005 entitled “PVR Hyperlinks Functionality in Triggered Declarative Objects for PVR Functions” to Mark Eyer, each of which are filed Mar. 2, 2011, and are hereby incorporated by reference.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.

BACKGROUND

A triggerable declarative object (TDO) is a downloadable object created by a content creator or service provider, which includes declarative content (text, graphics, descriptive markup, scripts, and audio) whose function and behavior is tied in some way to digital television programming that it accompanies. Standards defining TDOs specify associated available behaviors, appearance, trigger actions, and transport methods for content and metadata.

BRIEF DESCRIPTION OF THE DRAWINGS

Certain illustrative embodiments illustrating organization and method of operation, together with objects and advantages may be best understood by reference detailed description that follows taken in conjunction with the accompanying drawings in which:

FIG. 1 is an example of a flow chart of a process for implementation of a method consistent with certain embodiments of the present invention.

FIG. 2 is an example of a block diagram of a system that assembles video and TDOs at a broadcaster or other service provider in a manner consistent with certain embodiments of the present invention.

FIG. 3 is an example of a block diagram of a digital television receiver device suitable for operation in a manner consistent with certain embodiments of the present invention.

FIG. 4 is an example processor-centric view of a digital television receiver device suitable for operation in a manner consistent with certain embodiments of the present invention.

FIG. 5 is an example of a user interface such as can be rendered by a TDO in a manner consistent with certain embodiments of the present invention.

FIG. 6 is an example of the user interface of FIG. 5 when operating on stored content in a manner consistent with certain embodiments of the present invention.

FIG. 7 is an example of the user interface of FIG. 5 when operating on NRT content in a manner consistent with certain embodiments of the present invention.

DETAILED DESCRIPTION

While this invention is susceptible of embodiment in many different forms, there is shown in the drawings and will herein be described in detail specific embodiments, with the understanding that the present disclosure of such embodiments is to be considered as an example of the principles and not intended to limit the invention to the specific embodiments shown and described. In the description below, like reference numerals are used to describe the same, similar or corresponding parts in the several views of the drawings.

The terms “a” or “an”, as used herein, are defined as one or more than one. The term “plurality”, as used herein, is defined as two or more than two. The term “another”, as used herein, is defined as at least a second or more. The terms “including” and/or “having”, as used herein, are defined as comprising (i.e., open language). The term “coupled”, as used herein, is defined as connected, although not necessarily directly, and not necessarily mechanically. The term “program” or “computer program” or similar terms, as used herein, is defined as a sequence of instructions designed for execution on a computer system. A “program”, or “computer program”, may include a subroutine, a function, a procedure, an object method, an object implementation, in an executable application, an applet, a servlet, a source code, an object code, a script, a program module, a shared library/dynamic load library and/or other sequence of instructions designed for execution on a computer system.

The term “program”, as used herein, may also be used in a second context (the above definition being for the first context). In the second context, the term is used in the sense of a “television program”. In this context, the term is used to mean any coherent sequence of audio video content such as those which would be interpreted as and reported in an electronic program guide (EPG) as a single television program, without regard for whether the content is a movie, sporting event, segment of a multi-part series, news broadcast, etc. The term may also be interpreted to encompass commercial spots and other program-like content which may not be reported as a program in an electronic program guide.

Reference throughout this document to “one embodiment”, “certain embodiments”, “an embodiment” or similar terms means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearances of such phrases or in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments without limitation.

The term “or” as used herein is to be interpreted as an inclusive or meaning any one or any combination. Therefore, “A, B or C” means “any of the following: A; B; C; A and B; A and C; B and C; A, B and C”. An exception to this definition will occur only when a combination of elements, functions, steps or acts are in some way inherently mutually exclusive.

For purposes of this document, the terms “Synchronized Widget”, “Triggered Declarative Object”, “Triggerable Declarative Object” and “Triggered Downloadable Object” and similar terms are used synonymously and interchangeably and referred to as a “TDO”. Use of this term and related terms are generally as defined and explained in detail in U.S. patent application Ser. No. 12/959,529 filed Dec. 3, 2010 entitled “Announcement of Triggered Declarative Objects” to Blanchard et al. which is hereby incorporated by reference. However, the Blanchard application defines the content of the TDO and trigger somewhat more rigorously than is required in the general cases since many attributes defined therein as being a part of a TDO could be situated in the trigger or vice versa or not present at all depending upon the function and triggering of a particular TDO. As used herein, the term Triggered Declarative Object or Triggerable Declarative Object (TDO) is a downloadable software object created by a content creator or service provider. Generally, such objects have declarative content (text, graphics, descriptive markup, scripts, and audio) whose function and behavior is tied in some way to the television programming that it accompanies. Note that a TDO is generally considered as “declarative” content to distinguish it from “executable” content such as a Java applet or an application that runs on an operating system platform. While considered declarative, a TDO player supports a scripting language that is an object-oriented programming language. The TDO, in examples shown herein, are received from a service provider in advance of a time defined by a trigger object (as explained below) so that the TDO is available when the trigger arrives. Moreover, an explicit trigger signal may not be necessary and a TDO may be self-triggering or triggered by some action other than receipt of a trigger signal. Various standards bodies may define associated available behaviors, appearance, trigger actions, and transport methods for content and metadata for a TDO. Additionally, requirements regarding timing accuracy of TDO behaviors relative to audio/video may be defined by standards bodies.

As used herein a “trigger” or “announcement trigger” is a data object, bound to a particular item of programming content that references a specific TDO instance, by the use of a file name or identifier for an object that has already been downloaded. Certain TDOs will only make sense in conjunction with a certain program. An example is a TDO that collects viewer response data, such as voting on a game show or contest.

With regard to the exact nature of TDOs and triggers, certain information can be provided in either the TDO or the trigger without limitation. However, the two objects operate in cooperation to produce a desired function when the TDO is executed in a digital television receiver device's internal processor.

The present subject matter involves a user interaction with a TDO which causes behavior relating to Non-Real-Time (NRT) television service such as playing NRT content, storing NRT content, scheduling a download of NRT content, etc. (by way of example and not limitation). Note that the TDO concept is also applicable to content delivered in real-time, such as regular linear television programming; the present subject pertains to its functionality with regard to NRT content. NRT services generally is defined herein as audio/video content supplied on an NRT basis and may appear to the viewer (and hence may be referred to herein) as if it is simply another type of television programming. The delivery or playback of content delivered in the ATSC Non-Real-Time delivery system can be accomplished via files in a FLUTE transport for example as disclosed in U.S. patent application Ser. No. 12/584,171 filed Sep. 1, 2009, publication number US2010-0134701 published Jun. 3, 2010, entitled “Non-Real Time Services” to Eyer, which is hereby incorporated by reference in its entirety. Additionally, the NRT action taken by the TDO resulting from a user making a selection can result in the receiver scheduling the download of a specific item of NRT content. Some NRT content is low-latency; selection of that type of content could result in playback as soon as it was retrieved.

With regard to the exact nature of TDOs and triggers, certain information can be provided in either the TDO or the trigger without limitation. However, the two objects operate in cooperation to produce a desired function when the TDO is executed in a digital television receiver device's (such as a television set, a set-top box or other receiver that receives and processes television programming without limitation) internal processor. It is also noted that some TDOs may be self-triggering or triggered in a manner other than via a trigger object. For example, in certain implementations consistent with embodiments of the present invention, the TDO may be self-triggered as soon as it is fully received or triggered by a user act such as selection of NRT services or selection of a predetermined channel associated with NRT services or by other action than explicit receipt of a trigger object.

In accord with certain implementations consistent with embodiments of the present invention TDOs are utilized to provide a new mechanism for manipulation of NRT services including downloading NRT content, streaming of low latency NRT content, playback of stored NRT content and other manipulation including management of stored NRT content and providing a user interface for convenient access to NRT content.

In late 2010, a standards body in the United States completed a draft standard for delivery of NRT services. Three “consumption models” were described for files delivered via NRT services in this standard. For the “browse and download” and “push” models, the receiver manufacturer is expected to create the look and feel of the user interface (UI) of the service, using available metadata and graphics. In contrast, embodiments consistent with implementations of the present invention utilize a TDO to effect generation of a user interface that permits the user to carry out operations on NRT content.

The TDO according to certain implementations consistent with the present invention can be defined as part of a consumption model for the NRT service. In this situation (for this type of NRT service) the receiver retrieves or receives the TDO and may immediately execute a script carried by the TDO (or can await a triggering event such as the user selection of a predetermined channel or selection of NRT services). The TDO can be in a file within the broadcast transport, or it can be fetched from the Internet via a URL provided within the metadata defining the service. In this case, the TDO creates the “look and feel” of the NRT service. This can be defined in the standard as a new fourth consumption model which may be called “TDO-defined,” or “Scripted,” for example. By use of such a TDO, the broadcaster can design whatever type of appearance and navigational features they desire for that service, using the same rich authoring environment they can use when designing a typical website (for example). In so doing, the broadcaster or other service provider can provide any sort of user interface desired, many of which may resemble various electronic program guides (EPGs) and interfaces used for personal video recorders (PVR—also known as a digital video recorder or DVR).

To support NRT-specific navigation, some new types of scripted control objects can be included for use in the user interface. A scripted control object can, for example, take on the appearance of a button that can be selected and activated (pushed) by the user's operation of their remote control. One type of control object, when selected, causes the receiver to schedule a particular NRT download to occur at a future time. Another control object causes playback of an indicated item of NRT content, if that content is available in storage. Other control objects can provide for deletion, protection and other manipulation of NRT content. New functions provided to the scripting capability can include (but are not limited to):

-   -   a function that returns true if an indicated item of content is         available in storage, and false otherwise;     -   a function that returns true if an indicated item of content is         already scheduled for download, and false otherwise;     -   a function that returns the amount of available storage in the         receiver for new NRT content;     -   a function that allows an item of NRT content to be deleted from         storage either by activation of a control object,         programmatically, or in an automatic or programmed purging         process; and     -   a function that allows access to Preference, Demographic, and         Interests (PDI) files, to allow NRT look and feel and/or         playback to be tailored to the user's personal profile for         example, as described in U.S. patent application Ser. No.         12/985,241, filed Jan. 1, 2011 to Mark Eyer, entitled “Receiver         and Method for Reporting the Usage of Advanced Television         Services” which is hereby incorporated by reference.

Implementations consistent with the present teachings can be used for satellite, cable, and IPTV systems in general as well as terrestrial broadcasts.

Referring now to FIG. 1, a flow chart 100 depicts an example process carried out in a manner consistent with certain implementations of the present invention starting at 102. At 106 a TDO is received as an object from the service provider or broadcaster or downloaded from an Internet site. Upon completion of receipt of the TDO if the TDO is self-triggering, or at a later time if a trigger object is used to trigger the TDO, the TDO is executed causing the script embedded therein to begin execution at 110. The TDO may then run a number of “housekeeping” routines at 114. When the script is executed, several initial functions 118 may be carried out at 114 which are preparatory to rendering the UI. In example implementations, functions can be run that update a table of contents stored locally, updating of available NRT content that can be retrieved using this UI (that is, generally the NRT content available from the current service provider or broadcaster), running any purging routines for purging out-of-date stored information, updating any download schedules that need attention and checking personalization information for any customized functions of the UI that might be affected. The TDO then renders a user interface (UI) suitable for use by a viewer or user in manipulation of NRT content at 122. This action, in this implementation, causes an announcement to be displayed on the television display providing the viewer the opportunity to select a hyperlink or other triggered control object that can cause an NRT-service-related action to be carried out.

At this point, the user interface awaits input from the user, for example via a remote controller. If the viewer selects a control object at 126, the control object is executed and the digital television receiver device executes the appropriate function causing an NRT-related action defined by the TDO to be carried out. When an input is received at 126, the interface takes action in accord with commands issued by the user. Navigation commands are received and processed at 130 to permit the user to identify specific content or navigate among available actions. If the user selects an element of content, either stored or available as NRT content, the user may then elect at 126 to play the content by issuing appropriate commands at 134. In the case of stored content, a player function retrieves the content from local storage and begins rendering audio and video in a manner similar to that used by PVR devices. In the case of available NRT content several possibilities are available depending upon various factors. If the NRT content is low latency and or low resolution and network traffic permits, the NRT content may be streamed to the viewer. The viewer may be advised that problems may be encountered with jittery images or may be permitted to elect a lower resolution stream to optimize the viewing experience. Other variations may also be implemented including advising the viewer that a high quality stream is not possible at the present time.

If the user selects an item of locally stored content and elects to delete it at 126, then at 140 the content is deleted or reference to the content is removed from indexing on the local storage device. If the user selects an item of locally stored content and elects to protect the content at 144, the content is marked with a suitable flag to prevent accidental deletion.

If the user elects to download selected content at 126, several options are possible. If the user desires the content as quickly as possible at 148, the download can be started as quickly as possible at 152 without regard for network loading. Otherwise, the download can be scheduled either by the user or by the network for download at a later time for storage at 160. The user can elect to exit the UI at any time by making a selection at 126 to exit to 166.

After any action is carried out based on user input, at its completion each routine returns at 170 and the process then proceeds to whatever further functions may be defined by the TDO.

Referring now to FIG. 2, a basic diagram of an example service provider such as a broadcaster is depicted as 200. Generally speaking, a single service provider may provide multiple programs over one or more transport streams. The audio, video, caption data, etc. are provided to an encoder which encodes the data into packets suitable for distribution. The audio and video program material is encoded by audio and video encoders 204 which are then provided to a transport stream multiplexer 208 which then provides an output that can be distributed via a physical channel medium such as cable or satellite broadcast. In this discussion, the use of the term “Program” is generally consistent with that of the MPEG-2 Systems standard (ISO/IEC 13818-1). An MPEG-2 Program includes associated Elementary Stream components, such as for example one video Elementary Stream and one or more audio Elementary Streams. In accord with the implementation described above, the TDO data and its associated trigger data are also provided to the transport stream multiplexer for incorporation into the transport stream using any suitable coding. Multiple such program streams may be provided for and encoded and multiplexed into the transport stream at 208. The service provider may provide the content, TDOs etc. via cable, terrestrial broadcast, satellite or Internet without limitation.

Thus, at a service provider, a data stream may be assembled that includes a stream which pre-delivers a TDO to a digital television receiver device that carries out a programmed routine when the TDO is user activated. The TDO can include the script discussed herein to provide the viewer with a user interface for manipulation of NRT content. The stream can further deliver one or more trigger objects associated with the TDO to the television receiver device, where the trigger object causes execution of the TDO when the user makes an appropriate selection if the TDO is not to be self-starting.

A receiver device (such as a television set or set-top box, etc.) is depicted as receiver 300 in FIG. 3 wherein content is received via any suitable source such as terrestrial broadcast, cable or satellite at a receiver 300's tuner/demodulator 302. The transport stream, TDOs, triggers, etc. from the tuner/demodulator 302 is demultiplexed at demultiplexer 306 into audio and video streams. The audio is decoded at an audio decoder 310 while the video is decoded at a video decoder 314. Uncompressed A/V data may also be received via an uncompressed A/V interface that can be selectively utilized.

A/V content including TDOs, data and triggers may also be received via the Internet 322 via a network interface 326. Additionally, storage 330 can be provided for non-real time (NRT) or Internet-delivered content such as Internet Protocol Television (IPTV). The locally stored content (i.e., content stored in or in close proximity to the television receiver device—e.g., within the same house, room, apartment, or local network) can be played by demultiplexing at 306 in a manner similar to that of other sources of content. The receiver generally operates under control of a processor such as CPU 338 which is interconnected to working memory 340 and program memory 342 as well as a graphics subsystem 344 via one or more buses such as 350.

The CPU 338 receives closed caption data from the demultiplexer 306 as well as any other information such as TDO announcements and electronic programming guides used for rendering graphic content and passes the information to the graphics subsystem 344 and the images are composited at the compositor and video interface 360 to produce an output suitable for display on a video display.

The CPU 338 operates to carry out various processes within the context of the subject matter disclosed herein including generation of elements used in rendering of a user interface. CPU 338 further operates to execute any scripts contained in the TDO and/or its trigger(s).

CPU 338 also operates to oversee control of the digital television receiver including the tuner/demodulator 302 and other television resources. Connection to such systems is not shown to avoid cluttering the drawing, but will be understood by those skilled in the art upon consideration of the present teachings. Hence, when the CPU 338 executes the TDO script, a User Interface is generated, the graphics of which can be rendered with the cooperation of the graphics subsystem 344.

The operation in processing TDOs is depicted in a more processor-centric view in FIG. 4. Memory and storage 330, 340 and 342 are depicted collectively as 600 in FIG. 4 for convenience. Similarly, the various demodulators, decoders, etc. that initially process digital television signals are collectively depicted as 604. The television receiver device of FIG. 4 is further depicted as having a remote controller 610 which communicates with a remote controller interface 616. Additionally, the display 620 is depicted explicitly for completeness and may represent either an integral display as in a television set or a connected display device as in the case where the receiver device is realized in a television set-top box (STB).

Memory 600 contains various functional program modules and data. When a TDO object is received, the TDO 634 is stored at memory 600 along with its script that when selected causes generation of an NRT user interface with the assistance of graphics process and display interface 640. Execution of the TDO is carried out on CPU 338 with the graphics renderings handled by the graphics processor 640 (344). This TDO storage and execution is carried out at TDO handler 638 which may be integral to a browser 650. The TDO, when executed may present any suitable user interface for manipulation of NRT content either available or already downloaded under user control by manipulation of remote controller 610.

FIG. 5 depicts a rudimentary user interface 700 depicted purely for illustrative purposes to depict several basic NRT functions rendered available to the user by utilizing the UI provided in a TDO consistent with that described herein. In this example, two lists are provided in the interface, with one list being for NRT or other content that has been stored locally (saved) shown generally as 702. NRT content items that are available for download (or possibly streaming) are depicted in list 706 and the user can navigate up and down the list and cause the list to scroll up and down using the navigation arrows shown above and below the lists. The user can also select from a number of categories such as those listed in an array 710 at the bottom for better management of the lists by selecting a genre or category from the list shown. The user can also exit the UI at any time by selecting the Exit button 714 or carrying out an equivalent act using the remote controller.

As previously noted, the present interface is quite rudimentary and can be enhanced in many ways without departing from implementations consistent with the present invention. However, this interface is presented by way of simple illustration of the types of functions available to the user.

FIG. 6 depicts the same interface 700 as that depicted in FIG. 5, except in this illustration, an item of saved content 730 is shown as selected by virtue of the dark outline. Once selected, the viewer is presented with three options at 736 in a pop up window in this example of actions that can be taken (although those skilled in the art will appreciate upon consideration of these teachings that additional options can be provided). Those actions are as described in FIG. 1 and include deleting, protecting or playing the content. The dark highlight in this menu indicates that by pressing select on the remote controller (or enter or equivalent), the content will play.

FIG. 7 depicts the same interface 700 as that depicted in FIG. 5, except in this illustration, an item of available NRT content 750 is shown as selected by virtue of the dark outline. Once selected, the viewer is presented with pop up window 756 indicating that a download of this content can be scheduled for 2:00 am the following morning. This example illustrates one of many actions that can be programmed into the TDO (although those skilled in the art will appreciate upon consideration of these teachings that additional options can be provided). Those actions are as described in FIG. 1 and include playing content that is available at low-latency, or scheduling a download at the next available opportunity (exact time designated by the service provider). The dark highlight in this menu indicates that by pressing select on the remote controller (or enter or equivalent), the content will be scheduled for an overnight download. In other embodiments, other options may be possible as will be appreciated by those skilled in the art upon consideration of the present teachings.

Thus, a method consistent with certain implementations involves receiving a triggered declarative object (TDO) at a digital television receiver device, the TDO including a scripted executable routine; the scripted executable routine comprising a script that generates a user interface that presents a viewer with options for selection of items of non-real-time (NRT) television service for viewing or downloading; initiating the execution of the TDO by the digital television receiver device to initiate display of the NRT service; and where the method supports a plurality of scripted control objects and functions including but not limited to: a control object that when selected causes the receiver to schedule a particular NRT download to occur at a future time; a control object that when selected causes playback of an indicated item of NRT content when that content is available in local storage; a function that returns an indication of whether or not a specified item of NRT content is available in local storage; a function that returns an indication of whether or not a specified item of NRT content is already scheduled for download; a function that returns an amount of available local storage; and a function that deletes a specified item of NRT television service from storage.

Another method involves receiving a triggered declarative object (TDO) at a digital television receiver device, the TDO including a scripted executable routine; the scripted executable routine comprising a script that defines a user interface (UI) for manipulation of non-real-time (NRT) content; initiating the operation of the TDO; and the digital television receiver, executing operations to present the user with the user interface.

In certain implementations, the TDO player supports a user interface having a control object that when activated causes the receiver to schedule a particular NRT download to occur at a future time. In certain implementations, the TDO player supports a user interface which comprises a control object that causes playback of an indicated item of NRT content when that content is available in local storage. In certain implementations, the TDO player supports a script which includes a function that returns an indication of whether or not an item of NRT content is available in local storage. In certain implementations, the TDO player supports a script which includes a function that returns an indication of whether or not an item of NRT content is already scheduled for download. In certain implementations, the TDO player supports a script which includes a function that returns the amount of available local storage. In certain implementations, the TDO player supports a script which includes a function that deletes an item of NRT content from storage. In certain implementations, the TDO player supports a script which includes a function that accesses Preference, Demographic, and Interests (PDI) questionnaire responses, and that renders attributes of the user interface based on the responses.

In certain implementations, the process includes downloading, scheduling a download or playing a selected NRT content upon receipt of a command via the user interface. In certain implementations, the process provides a selection for rendering NRT content that has not been stored in non-volatile memory, where the item of NRT content is available for streaming at low-latency. In certain implementations, the NRT content is delivered via the Internet. In certain implementations, the player supports a user interface which identifies event times and actions related to NRT content items. In certain implementations, actions related to NRT services that are available via the user interface further include initial access to NRT services, selections of NRT content for download, completion of a full playback of NRT content, completion of a partial playback of NRT content and exiting NRT services. In certain implementations, the TDO is self-triggered upon completion of receipt of the TDO. In certain implementations, the TDO is executed upon user initiation of NRT services. In certain implementations, the TDO is executed upon user selection of a predetermined television channel. In certain implementations, the method further involves retrieving the TDO as a file within a broadcast transport. In certain implementations, the TDO is fetched from the Internet via a URL provided within metadata defining NRT services.

A computer readable storage medium such as a non-transitory storage medium can be used to store instructions which, when executed on one or more programmed processors, carry out any of the methods described herein.

A device consistent with certain implementations has a processor and a memory. A digital television receiver device receives and stores to the memory a triggered declarative object (TDO), the TDO including a scripted executable routine that is executable by a processor of the digital television receiver device. Upon occurrence of a triggering action, the processor executes the operations of the scripted executable routine to define a user interface (UI) for manipulation of non-real-time (NRT) television content. The processor further executes operations to present the user with the user interface.

In certain implementations, upon receipt of a command via the user interface, the processor downloading, scheduling a download or playing a selected item of NRT content based upon the command via the user interface. In certain implementations, the TDO is self-triggered upon completion of receipt of the TDO. In certain implementations, the TDO is executed upon user initiation of NRT services. In certain implementations, the TDO is executed upon user selection of a predetermined television channel.

In certain implementations, the user interface includes a plurality of scripted control elements and functions including: a control element that when activated causes the receiver to schedule a particular NRT download to occur at a future time; a control element that when activated causes playback of an indicated item of NRT content when that content is available in local storage; a function that returns an indication of whether or not an item of NRT content is available in local storage; a function that returns an indication of whether or not an item of NRT content is already scheduled for download; a function that returns an amount of available local storage; and a function that deletes an item of NRT content from storage.

Another device consistent with certain implementations has a processor and a memory. A digital television receiver device is configured to receive and store to the memory a triggered declarative object (TDO), the TDO comprising a scripted executable routine that is executable by a processor of the digital television receiver device. The processor is programmed to execute the operations of the scripted executable routine to define a user interface (UI) for manipulation of non-real-time (NRT) television content upon occurrence of a triggering action and is further programmed to executing scripted operations to present the user with the user interface.

In certain implementations, the user interface includes a plurality of scripted control elements and functions including: a control element that when activated causes the receiver to schedule a particular NRT download to occur at a future time; a control element that when activated causes playback of an indicated item of NRT content when that content is available in local storage; a function that returns an indication of whether or not an item of NRT content is available in local storage; a function that returns an indication of whether or not an item of NRT content is already scheduled for download; a function that returns an amount of available local storage; and a function that deletes an item of NRT content from storage.

Those skilled in the art will recognize, upon consideration of the above teachings, that certain of the above exemplary embodiments are based upon use of a programmed processor. However, the invention is not limited to such exemplary embodiments, since other embodiments could be implemented using hardware component equivalents such as special purpose hardware and/or dedicated processors. Similarly, general purpose computers, microprocessor based computers, micro-controllers, optical computers, analog computers, dedicated processors, application specific circuits and/or dedicated hard wired logic may be used to construct alternative equivalent embodiments.

Those skilled in the art will appreciate, upon consideration of the above teachings, that the program operations and processes and associated data used to implement certain of the embodiments described above can be implemented using disc storage as well as other forms of storage such as non-transitory storage devices including as for example Read Only Memory (ROM) devices, Random Access Memory (RAM) devices, network memory devices, optical storage elements, magnetic storage elements, magneto-optical storage elements, flash memory, core memory and/or other equivalent volatile and non-volatile storage technologies without departing from certain embodiments of the present invention. The term non-transitory does not suggest that information cannot be lost by virtue of removal of power or other actions. Such alternative storage devices should be considered equivalents.

Certain embodiments described herein, are or may be implemented using a programmed processor executing programming instructions that are broadly described above in flow chart form that can be stored on any suitable electronic or computer readable storage medium. However, those skilled in the art will appreciate, upon consideration of the present teaching, that the processes described above can be implemented in any number of variations and in many suitable programming languages without departing from embodiments of the present invention. For example, the order of certain operations carried out can often be varied, additional operations can be added or operations can be deleted without departing from certain embodiments of the invention. Error trapping can be added and/or enhanced and variations can be made in operational flow, user interface and information presentation without departing from certain embodiments of the present invention. Such variations are contemplated and considered equivalent.

While certain illustrative embodiments have been described, it is evident that many alternatives, modifications, permutations and variations will become apparent to those skilled in the art in light of the foregoing description. 

What is claimed is:
 1. A method, comprising: receiving a triggered declarative object (TDO) at a digital television receiver device, the TDO including a scripted executable routine; the scripted executable routine comprising a script that generates a user interface that presents a viewer with options for selection of items of non-real-time (NRT) television service for viewing or downloading; initiating the execution of the TDO by the digital television receiver device to start the NRT service; and where the television receiver device processes a plurality of scripted control objects and functions including but not limited to: a control object that when selected causes the receiver to schedule a particular NRT download to occur at a future time; a control object that when selected causes playback of an indicated item of NRT content when that content is available in local storage; a function that returns an indication of whether or not a specified item of NRT content is available in local storage; a function that returns an indication of whether or not a specified item of NRT content is already scheduled for download; a function that returns an amount of available local storage; and a function that deletes a specified item of NRT television service from storage. 